From: Timm Bäder Date: Sat, 24 Aug 2019 08:35:53 +0000 (+0200) Subject: cssprovider: Don't lookup on empty css providers X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1~1^2~321^2^2~944 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=d8df197489e7466414857164850b8c93c187bd21;p=gtk4.git cssprovider: Don't lookup on empty css providers This should not have a huge performance impact, but debugging is easier if we don't lookup in empty css providers. --- diff --git a/gtk/gtkcssprovider.c b/gtk/gtkcssprovider.c index 32a098dc44..15279c039e 100644 --- a/gtk/gtkcssprovider.c +++ b/gtk/gtkcssprovider.c @@ -527,6 +527,9 @@ gtk_css_style_provider_lookup (GtkStyleProvider *provider, int i; GPtrArray *tree_rules; + if (_gtk_css_selector_tree_is_empty (priv->tree)) + return; + tree_rules = _gtk_css_selector_tree_match_all (priv->tree, matcher); if (tree_rules) { diff --git a/gtk/gtkcssselector.c b/gtk/gtkcssselector.c index 3a1b95dbf7..89ec18194f 100644 --- a/gtk/gtkcssselector.c +++ b/gtk/gtkcssselector.c @@ -1885,6 +1885,12 @@ gtk_css_selector_tree_get_change (const GtkCssSelectorTree *tree, return change; } +gboolean +_gtk_css_selector_tree_is_empty (const GtkCssSelectorTree *tree) +{ + return tree == NULL; +} + GtkCssChange _gtk_css_selector_tree_get_change_all (const GtkCssSelectorTree *tree, const GtkCssMatcher *matcher) diff --git a/gtk/gtkcssselectorprivate.h b/gtk/gtkcssselectorprivate.h index 64eb13d709..6f35917c6e 100644 --- a/gtk/gtkcssselectorprivate.h +++ b/gtk/gtkcssselectorprivate.h @@ -47,6 +47,8 @@ GtkCssChange _gtk_css_selector_tree_get_change_all (const GtkCssSelectorTree * const GtkCssMatcher *matcher); void _gtk_css_selector_tree_match_print (const GtkCssSelectorTree *tree, GString *str); +gboolean _gtk_css_selector_tree_is_empty (const GtkCssSelectorTree *tree) G_GNUC_CONST; + GtkCssSelectorTreeBuilder *_gtk_css_selector_tree_builder_new (void);